package cn.uestc.labhms.modules.hms.service;

import cn.uestc.labhms.modules.hms.entity.Vo.AddFieldVo;
import cn.uestc.labhms.modules.hms.entity.Vo.ConditionsFindVo;
import cn.uestc.labhms.modules.hms.entity.Vo.TableNamesVo;
import cn.uestc.labhms.modules.hms.util.HMSPageUtils;

import java.util.List;
import java.util.Map;

/**
 * @author Mu.tz
 */
public interface TableService {
    /**
     * 获取表名
     * @return
     */
    TableNamesVo getTableNames();

    /**
     * 通过表名查询该表的字段
     * @param tableName 中文表名
     * @return 英文字段列表
     */
    List<String> getTableFields(String tableName);

    /**
     * 单表条件查询
     * @param conditionsFindVo
     * @return
     */
    HMSPageUtils getConditionsFind(ConditionsFindVo conditionsFindVo);

    /**
     * 插入数据
     * @param tableNameC 中文表名
     * @param row 中文键值对信息
     */
    void insertRowByMap(String tableNameC, Map<String, String> row);

    /**
     * 更新数据
     * @param tableNameC 中文表名
     * @param row 中文键值对信息
     */
    void updateRowByMap(String tableNameC, Map<String, String> row);

    /**
     * 根据id删除数据
     * @param tableNameC 中文表名
     * @param id 值
     * @return 影响行数
     */
    int deleteRowById(String tableNameC, String id);

    /**
     * 获取对应表的中文id名
     * @param tableNameC
     * @return 中文id名
     */
    String getIdName(String tableNameC);

    /**
     * 增加数据库中某张表的一个字段
     * @param addFieldVo 表中相关信息
     */
    void addXlsxField(AddFieldVo addFieldVo);
}
